;Exercise 1.20
;The process that a procedure generates is of course dependent on the rules
;used by the interpreter. As an example, consider the iterative gcd procedure
;given above. Suppose we were to interpret this procedure using normal-order 
;evaluation, as discussed in section Section 1.1.5. (The normal-order-evaluation
;rule for if is described in Exercise 1.5)
;Using the substitution method (for normal order), illustrate the process gener-
;ated in evaluating (gcd 206 40) and indicate the remainder operations that are
;actually performed. How many remainder operations are actually performed
;in the normal-order evaluation of (gcd 206 40)? In the applicative-order eval-
;uation?

(define (gcd a b)
  (if (= b 0)
      a
      (gcd b (remainder a b))))

;Normal order
;(gcd 206 40)
;(gcd 40 (remainder 206 40))
;(gcd 6 (remainder 6 4))
;(gcd 2 (remainder 4 2))
;3 operações de remainder

;Aplicative order
;(gcd 206 40)
;(gcd 40 (remainder 206 40))
;(gcd 6 (remainder 6 4))
;(gcd 2 (remainder 4 2))
;(gcd 0 (remainder 2 0))
;4 operações de remainder
